package com.um.springboot.starter.utils;

import com.github.junrar.Junrar;
import org.apache.tools.ant.Project;
import org.apache.tools.ant.taskdefs.Expand;

import java.io.File;

public class ZipUtil {

   /**   
    * 解压zip格式压缩包   
    * 对应的是ant.jar   
    * @param sourceZip zip文件名的全路径，包括文件名
    * @param destDir 需要压缩的文件夹的全路径
    */    
	public static void unzip(String sourceZip,String destDir) throws Exception{     
       try{     
           Project p = new Project();     
           Expand e = new Expand();     
           e.setProject(p);     
           e.setSrc(new File(sourceZip));     
           e.setOverwrite(false);     
           e.setDest(new File(destDir));     
           /*   
           ant下的zip工具默认压缩编码为UTF-8编码，   
                            而winRAR软件压缩是用的windows默认的GBK或者GB2312编码   
                            所以解压缩时要制定编码格式   
           */    
           e.setEncoding("gbk");     
           e.execute();     
       }catch(Exception e){     
           throw e;     
       }     
   }     
   /**   
    * 解压rar格式压缩包。
    * @param sourceRar rar文件名的全路径，包括文件名
    * @param destDir 需要压缩的文件夹的全路径
    */    
   public static void unrar(String sourceRar,String destDir) throws Exception{
       Junrar.extract(new File(sourceRar),new File(destDir));
   }

//   public static void main(String[] args)throws Exception{
//       unzip("/Users/dengnanhui/Downloads/22.zip","/Users/dengnanhui/Downloads/223");
//   }
}